package com.example.demo.huawei;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;

public class Main45 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int i = Integer.parseInt(sc.nextLine());
        int[] arr = new int[i];
        Map<Integer, Integer> map = new LinkedHashMap<>();
        Map<Integer, List<Integer>> map2 = new LinkedHashMap<>();
        for (int j = 0; j < i; j++) {
            String s = sc.nextLine();
            arr[j] = Integer.parseInt(s.split("\\s")[1]);
            int index = Integer.parseInt(s.split("\\s")[0]);
            map.put(index, arr[j]);
            if (!map2.containsKey(arr[j])) {
                List<Integer> list = new ArrayList<>();
                list.add(index);
                map2.put(arr[j], list);
            } else {
                List<Integer> list = map2.get(arr[j]);
                list.add(index);
                map2.put(arr[j], list);
            }
        }
//        System.out.println(map);
//        System.out.println(map2);
//        System.out.println(Arrays.toString(arr));

        Arrays.sort(arr);

        Set<List<Integer>> res = new LinkedHashSet<>();

        // 找到最小分差
        int min = Integer.MAX_VALUE;
        for (int j = 0; j < arr.length - 1; j++) {
            // 任意两个相邻元素想减 找到最小值
            int min1 = arr[j + 1] - arr[j];
            if (min1 < min) {
                min = min1;
            }
        }

        for (int j = 0; j < arr.length - 1; j++) {
            // 任意两个相邻元素想减 找到最小值
            int min1 = arr[j + 1] - arr[j];
            if (min1 == min && min == 0) {
                List<Integer> list = map2.get(arr[j + 1]);
                //                List<Integer> list2 = map2.get(arr[j]);
                for (int k = 0; k < list.size(); k++) {
                    for (int h = 0; h < list.size(); h++) {
                        List<Integer> set = new ArrayList<>();
                        if (k < h) {
                            set.add(list.get(k));
                            set.add(list.get(h));
                            res.add(set);
                        }
                    }
                }
                break;

            } else if (min1 == min && min > 0) {
                res.add(Arrays.asList(map2.get(arr[j]).get(0), map2.get(arr[j + 1]).get(0)));
            }
        }


        for (List<Integer> list : res) {
            Collections.sort(list);
            System.out.println(list.get(0) + " " + list.get(1));
        }
    }
}
